#ifndef __XGU_FUNCTOR00_H__
#define __XGU_FUNCTOR00_H__

namespace xgu
{
	// -----------------------------------------------------------
	// No Argument
	template <typename TRet>
	class Functor<TRet>
	{
	public:
		virtual ~Functor() {};
		virtual TRet operator() () = 0;
		virtual bool operator== (const Functor<TRet>& lhs) const		{ return false; }
		virtual Functor<TRet>* Clone() const = 0;
	};
}

#endif